Changes
This page details the changes made in the current version only.
Earlier changes are detailed in the History of Previous Changes.
Earlier changes are detailed in the History of Previous Changes.
JMeter 5.6.x requires Java 8 or later for execution (Java 17 or later recommended).
The next major release would require Java 17 or later.
The next major release would require Java 17 or later.
Version 5.6.3
Summary
Improvements
General
- PR#6199 – Enable use of ${...} expressions for TransactionController "generate parent sample", and "include timers" checkboxes
- PR#6199 – Enable use of ${...} expressions for ThreadGroupGui "scheduler" checkbox
- PR#6199 – Enable use of ${...} expressions for HTTP Request "retrieve embedded resources", "download resources concurrently", and "store as MD5" checkboxes
Bug fixes
General
- Issue#6043, PR#6044 – JMeter 5.6 shows 0 as a min response time in summary report
- Restored binary API compatibility with pre-5.6.2: restore public methods to non-static as they were before 5.6.2 JavaSamplerContext.getJMeterVariables, JavaSamplerContext.getJMeterProperties, BoundaryExtractor.extractAll, AuthManager.setupCredentials, HttpRequestHdr.getMultipartConfig, (regression since 5.6.2)
- Issue#6165, PR#6192 – The Constant Throughput Timer is throwing a NullPointerException when using variables (vars.get) in "Target Throughput"-field
- Issue#6162 – The Constant Timer is throwing a NullPointerException when using variables (vars.get) in "delay"-field
- PR#6193 – Log errors happening while JMeter starts the test (previously, errors from TestStateListener.testStarted were not logged)
- PR#6216 – Pass JDBCSampler.maxRows to Statement.setMaxRows so the driver does not fetch extra rows from the database
Non-functional changes
- PR#6166 – Use Gradle to 8.5 for building JMeter
- Require Java 17 for building JMeter
- PR#6199 – Improved API for programmatic test plan creation, see default implementations of createTestElement, modifyTestElement, and new makeTestElement and assignDefaultValues methods in JMeterGUIComponent. AbstractJMeterGuiComponent.configureTestElement is now discouraged
- PR#6212 – Refactor: migrate existing Groovy tests to Kotlin, remove Groovy compiler from the build pipeline
- PR#6214 – Refactor JUnit 3 and JUnit 4 tests to JUnit 5, remove JUnit 4 test dependency
Dependency upgrades
- Update com.fasterxml.jackson.core:jackson-annotations to 2.16.1 (was 2.15.2)
- Update com.fasterxml.jackson.core:jackson-core to 2.16.1 (was 2.15.2)
- Update com.fasterxml.jackson.core:jackson-databind to 2.16.1 (was 2.15.2)
- Update com.fifesoft:rsyntaxtextarea to 3.3.4 (was 3.3.3)
- Update com.google.errorprone:error_prone_annotations to 2.24.0 (was 2.20.0)
- Update commons-codec:commons-codec to 1.16.0 (was 1.15)
- Update commons-io:commons-io to 2.15.1 (was 2.12.0)
- Update commons-logging:commons-logging to 1.3.0 (was 1.2)
- Update commons-net:commons-net to 3.9.0 (was 3.10.0)
- Update io.burt:jmespath-core to 0.6.0 (was 0.5.1)
- Update io.burt:jmespath-jackson to 0.6.0 (was 0.5.1)
- Update net.minidev:accessors-smart to 2.5.0 (was 2.4.11)
- Update net.minidev:json-smart to 2.5.0 (was 2.4.11)
- Update net.sf.saxon:Saxon-HE to 11.6 (was 11.5)
- Update org.apache.commons:commons-lang3 to 3.14.0 (was 3.12.0)
- Update org.apache.commons:commons-pool2 to 2.12.0 (was 2.11.1)
- Update org.apache.commons:commons-text to 1.11.0 (was 1.10.0)
- Update org.apache.httpcomponents.client5:httpclient5 to 5.3 (was 5.2.1)
- Update org.apache.httpcomponents.core5:httpcore5-h2 to 5.2.4 (was 5.2)
- Update org.apache.httpcomponents.core5:httpcore5 to 5.2.4 (was 5.2)
- Update org.apache.logging.log4j:log4j-1.2-api to 2.22.1 (was 2.20.0)
- Update org.apache.logging.log4j:log4j-api to 2.22.1 (was 2.20.0)
- Update org.apache.logging.log4j:log4j-core to 2.22.1 (was 2.20.0)
- Update org.apache.logging.log4j:log4j-slf4j-impl to 2.22.1 (was 2.20.0)
- Update org.apache.xmlgraphics:xmlgraphics-commons to 2.9 (was 2.8)
- Update org.checkerframework:checker-qual to 3.42.0 (was 3.35.0)
- Update org.codehaus.groovy:groovy-datetime to 3.0.20 (was 3.0.17)
- Update org.codehaus.groovy:groovy-dateutil to 3.0.20 (was 3.0.17)
- Update org.codehaus.groovy:groovy-jmx to 3.0.20 (was 3.0.17)
- Update org.codehaus.groovy:groovy-json to 3.0.20 (was 3.0.17)
- Update org.codehaus.groovy:groovy-jsr223 to 3.0.20 (was 3.0.17)
- Update org.codehaus.groovy:groovy-sql to 3.0.20 (was 3.0.17)
- Update org.codehaus.groovy:groovy-templates to 3.0.20 (was 3.0.17)
- Update org.codehaus.groovy:groovy-xml to 3.0.20 (was 3.0.17)
- Update org.codehaus.groovy:groovy to 3.0.20 (was 3.0.17)
- Remove org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22
- Update org.jetbrains.kotlin:kotlin-stdlib-jdk7 to 1.9.10 (was 1.8.22)
- Update org.jetbrains.kotlin:kotlin-stdlib-jdk8 to 1.9.10 (was 1.8.22)
- Update org.jetbrains.kotlin:kotlin-stdlib to 1.9.22 (was 1.8.22)
- Update org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm to 1.7.3 (was 1.7.1)
- Update org.jetbrains.kotlinx:kotlinx-coroutines-swing to 1.7.3 (was 1.7.1)
- Update org.jetbrains.lets-plot:base-portable-jvm to 4.1.0 (was 3.2.0)
- Update org.jetbrains.lets-plot:lets-plot-common to 4.1.0 (was 3.2.0)
- Update org.jetbrains.lets-plot:lets-plot-kotlin-jvm to 4.5.0 (was 4.4.1)
- Update org.jetbrains.lets-plot:plot-common-portable-jvm to 4.1.0 (was 3.2.0)
- Update org.jetbrains:annotations to 24.1.0 (was 24.0.1)
- Update org.jsoup:jsoup to 1.17.1 (was 1.16.1)
- Update org.mongodb:mongo-java-driver to 2.14.3 (was 2.11.3)
- Update org.neo4j.driver:neo4j-java-driver to 4.4.13 (was 4.4.11)
- Update org.ow2.asm:asm to 9.6 (was 9.5)
- Update org.xmlresolver:xmlresolver to 5.2.1 (was 4.6.4)
- Update org.xmlresolver:xmlresolver:data to 5.2.1 (was 4.6.4)
Thanks
We thank all contributors mentioned in bug and improvement sections above:
We also thank bug reporters who helped us improve JMeter.
Apologies if we have omitted anyone else.
Known problems and workarounds
- The Once Only controller behaves correctly under a Thread Group or Loop Controller, but otherwise its behaviour is not consistent (or clearly specified).
- The numbers that appear to the left of the green box are the number of active threads / total number of threads, the total number of threads only applies to a locally run test, otherwise it will show 0 (see Bug 55510).
-
Note that under some windows systems you may have this WARNING:
java.util.prefs.WindowsPreferences WARNING: Could not open/create prefs root node Software\JavaSoft\Prefs at root 0 x80000002. Windows RegCreateKeyEx(…) returned error code 5.
The fix is to run JMeter as Administrator, it will create the registry key for you, then you can restart JMeter as a normal user and you won't have the warning anymore. -
You may encounter the following error:
java.security.cert.CertificateException: Certificates does not conform to algorithm constraints
if you run a HTTPS request on a web site with a SSL certificate (itself or one of SSL certificates in its chain of trust) with a signature algorithm using MD2 (like md2WithRSAEncryption) or with a SSL certificate with a size lower than 1024 bits. This error is related to increased security in Java 8+.
To allow you to perform your HTTPS request, you can downgrade the security of your Java installation by editing the Java jdk.certpath.disabledAlgorithms property. Remove the MD2 value or the constraint on size, depending on your case.
This property is in this file:JAVA_HOME/jre/lib/security/java.security
See Bug 56357 for details. - Under Mac OSX Aggregate Graph will show wrong values due to mirroring effect on numbers. This is due to a known Java bug, see Bug JDK-8065373 The fix is to use JDK8_u45 or later.
- View Results Tree may fail to display some HTML code under HTML renderer, see Bug 54586. This is due to a known Java bug which fails to parse "px" units in row/col attributes. See Bug JDK-8031109 The fix is to use JDK9 b65 or later.
- JTable selection with keyboard (SHIFT + up/down) is totally unusable with Java 7 on Mac OSX. This is due to a known Java bug JDK-8025126 The fix is to use JDK 8 b132 or later.
-
Since Java 11 the JavaScript implementation Nashorn has been deprecated.
Java will emit the following deprecation warnings, if you are using JavaScript based on Nashorn.
Warning: Nashorn engine is planned to be removed from a future JDK release
To silence these warnings, add -Dnashorn.args=--no-deprecation-warning to your Java arguments. That can be achieved by setting the enviroment variable JVM_ARGSexport JVM_ARGS="-Dnashorn.args=--no-deprecation-warning"
-
With Java 15 the JavaScript implementation Nashorn has been removed. To add back a JSR-223 compatible JavaScript engine you have two options:
- Use Mozilla Rhino
- Copy rhino-engine-1.7.14.jar into $JMETER_HOME/lib/ext.
- Use OpenJDK Nashorn
-
The OpenJDK Nashorn implementation comes as a module. To use it, you will have to download it and add it to the module path. A hacky way to download the version 15.0 (or later) and its dependencies and set the module path is outlined below:
mkdir lib/modules pushd lib/modules wget https://repo1.maven.org/maven2/org/openjdk/nashorn/nashorn-core/15.4/nashorn-core-15.4.jar wget https://repo1.maven.org/maven2/org/ow2/asm/asm/9.6/asm-9.6.jar wget https://repo1.maven.org/maven2/org/ow2/asm/asm-commons/9.6/asm-commons-9.6.jar wget https://repo1.maven.org/maven2/org/ow2/asm/asm-util/9.6/asm-util-9.6.jar wget https://repo1.maven.org/maven2/org/ow2/asm/asm-tree/9.6/asm-tree-9.6.jar wget https://repo1.maven.org/maven2/org/ow2/asm/asm-analysis/9.6/asm-analysis-9.6.jar popd export JVM_ARGS="--module-path $PWD/lib/modules" ./bin/jmeter